Rectified Flow
Rectified Flow的基本思想
用模型去学习两个分布数据点之间的变化速度v,通过,以实现将源数据转换为目标数据,v通过神经网络学习,并通过多次ReFlow(用训练好的模型生成配对数据进行第二轮的模型训练,模型参数复制上一轮),可以拉直生成轨迹,加快生成速度。
Rectified Flow的思路
给定从两个分布中的采样,希望找到一个传输映射T使得,当时,。
映射T可以通过以下常微分方程ODE,或者叫流模型,来隐式定义:可以想象从里采样出来的是一个粒子,它从t=0时刻开始连续运动,在t时刻以v为速度。知道t=1时刻到达。这里用神经网络来学习v。
上式使用Euler法(或其变种)用离散时间进行近似计算:其中是一个步长参数,越小越精确,但生成速度就慢。为了用较大的(例如1)还保持高精度,提出“走直线”。如下图中,蓝色为真实ODE轨迹,绿色为Euler法得到的离散轨迹。
假设从两个分布中各自随机采样,有,这时的并不配对。简单对它们线性插值得到:
,对它求导得到一个简单的ODE:
但这个在前向过程中不可用,因为x1并不知道,因此提出一个可前向模拟的来逼近这个导数:
通过上一步,得到的ODE轨迹虽然避免了交叉,但轨迹仍然是弯曲的,这代表生成无法一步实现,因此提出ReFlow方法将轨迹进一步拉直。
首先用两个分布中随机采样的非配对数据训练一个Flow,称为1-Rectified Flow,然后用训练好的模型采样:,如此得到的(x0,x1)就是比较配对的数据对,用它的参数再去训练一个2-Rectified Flow。
2-Rectified Flow和1-Rectified Flow在训练过程中唯一的区别就是数据配对不同。理论上可以重复Reflow多次,可证明该过程其实是在单调地减小最优传输理论中的传输代价(transport cost),而且最终收敛到完全直的状态。
当ODE轨迹完全拉直时,就可以通过一步得到去噪后的图像。